Modul:Rätsel Infobox
local p = {} local infobox local categories = {} -- Categories to add local function getPuzzle( game, number ) local data = mw.loadData( "Modul:RätselDaten/" .. game ) return datatonumber(number) end local function isEmpty( arg ) return not arg or arg '' end local function addCategory( category ) categories#categories+1 = "Kategorie:" .. category .. "" end local function createInfobox( Spiel ) local borders = { "1" = "001633", "2" = "001633", "3" = "001633", "4" = "001633", "5" = "001633", "6" = "001633" } local backgrounds = { "1" = "7cb4d2", "2" = "7cb4d2", "3" = "7cb4d2", "4" = "7cb4d2", "5" = "7cb4d2", "6" = "7cb4d2" } local myborder = bordersSpiel local mybackground = backgroundsSpiel infobox = mw.html.create( "table" ):addClass( "infobox" ) if myborder then infobox:css( "border", "2px solid #" .. myborder ) end if mybackground then infobox:css( "background-color", "#" .. tostring( mybackground ) ) end end local function addTitleRow( Name ) if not Name then Name = mw.title.getCurrentTitle().text end infobox :tag( "tr" ) :tag( "th" ) :attr( "colspan", 2 ) :addClass( "infoboxheader" ) :wikitext( Name ) end local function addImageRow( Bild ) infobox :tag( "tr" ) :tag( "th" ) :attr( "colspan", 2 ) :css( "padding","0.5em" ) :wikitext( "link=" ) end local function addHeaderRow( text ) infobox :tag( "tr" ) :tag( "th" ) :attr( "colspan", 2 ) :addClass( "color1" ) :wikitext(text) end local function addRow( label, content, altText ) if isEmpty( content ) then if altText then content = altText else return end end local row = infobox:tag( "tr" ) row:tag( "td" ) :addClass( "farbe1" ) :wikitext( label ) row:tag( "td" ) :addClass( "farbe2" ) :wikitext( content ) end function p.main( frame ) local args = frame:getParent().args -- Template parameters (like } etc) local puzzle = getPuzzle( args.Spiel, args.Nummer ) -- Data from the PuzzleData modules createInfobox( args.Spiel ) -- ## TITEL ## addTitleRow( args.Name ) -- ## BILD ## local Bild = args.Bild or ( "PL" .. args.Spiel .. "-" .. args.Nummer .. ".png" ) addImageRow( Bild ) -- ## SPRACHEN ## addHeaderRow( "In anderen Sprachen" ) -- JP if not isEmpty(args.Jp) then local Romaji = args.Romaji if isEmpty( Romaji ) then Romaji = "Romaji fehlt" addCategory( "Romaji fehlt" ) end args.Jp = args.Jp .. " " .. Romaji .. "" end addRow( "link= Japanisch", args.Jp ) -- EN (US/UK) if not isEmpty(args.En) then -- Englisch addRow( "17px|link= Englisch", args.En ) else -- Amerikanisch & Britisch addRow( "link= Amerikanisch", args.Us ) addRow( "link= Britisch", args.Uk ) end -- FR addRow( "link= Französisch", args.Fr, "Unbekannt" ) if isEmpty( args.Fr ) then addCategory( "Französischer Titel fehlt" ) end -- IT addRow( "link= Italienisch", args.It, "Unbekannt" ) if isEmpty( args.It ) then addCategory( "Italienischer Titel fehlt" ) end -- KR if not isEmpty(args.Kr) then local Kr_Umschrift = args"Kr-Umschrift" if isEmpty(Kr_Umschrift) then Kr_Umschrift = "Umschrift fehlt" addCategory( "Umschrift fehlt" ) end args.Kr = args.Kr .. " " .. Kr_Umschrift .. "" end addRow( "link= Koreanisch", args.Kr ) -- NL addRow( "link= Niederländisch", args.Nl ) -- SP addRow( "link= Spanisch", args.Sp, "Unbekannt" ) if isEmpty( args.Sp ) then addCategory( "Spanischer Titel fehlt" ) end -- ## INFORMATIONEN ## addHeaderRow( "Informationen" ) -- Nummer local Anzahl = { "1" = "von 135", "2" = "von 153", "3" = "von 168", "4" = "von 170", "5" = "von 150", "6" = "von 165", "VS" = "von 82" } addRow( "Rätsel-Nummer", args.Nummer ) -- Spiel local Spiele = { "1" = "Professor Layton und das Geheimnisvolle Dorf", "2" = "Professor Layton und die Schatulle der Pandora", "3" = "Professor Layton und die verlorene Zukunft", "4" = "Professor Layton und der Ruf des Phantoms", "5" = "Professor Layton und die Maske der Wunder", "6" = "Professor Layton und das Vermächtnis von Aslant", "VS" = "Professor Layton vs. Phoenix Wright: Ace Attorney" } addRow( "Spiel", "[.. ( Spiele[args.Spiel or "" ) .. "]]" ) -- Pikarat addRow( "Pikarat", puzzle.pikarat ) addCategory( ( puzzle.pikarat or 0 ) .. " Pikarat" ) -- Typ local typ = puzzle.typ addCategory( "Typ:" .. puzzle.typ ) if puzzle.typ2 then typ = typ .. "/" .. puzzle.typ2 addCategory( "Typ:" .. puzzle.typ2 ) end addRow( "Typ", typ ) -- Ort addRow( "Ort", "" .. puzzle.ort .. "" ) addCategory( "Ort:" .. puzzle.ort ) -- Kapitel if not isEmpty( puzzle.kapitel ) then addRow( "Kapitel", "" .. puzzle.kapitel .. "" ) end -- Person if not isEmpty( puzzle.person ) then addRow( "Gestellt von", "" .. puzzle.person .. "" ) end -- Gelöst von if not isEmpty( puzzle.loeser ) then addRow( "Gelöst von", "" .. puzzle.loeser .. "" ) end -- Belohnung if isEmpty(args.Belohnung) then addRow( "Belohnung", "Keine") else addRow( "Belohnung", args.Belohnung ) end return tostring( infobox ) .. table.concat( categories ) end return p --